package gspushmq.v1.app.subscribeapp.enumeration;
/**
 * 
 * 产品线枚举类
 * 
 * @version 1.0
 * @since JDK1.7
 * @author yaomy
 * @company 上海朝阳永续信息技术有限公司
 * @copyright (c) 2018 SunTime Co'Ltd Inc. All rights reserved.
 * @date 2018年5月7日 上午11:41:41
 */

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public enum ProductLineEnum {

	//机构版
	TERMINAL3(3, "Go-Goal3.0金融终端"),
	TERMINAL4(4, "Go-Goal4.0金融终端"),
	//智投版
	ZHITOU_PC(28, "Go-Goal智投版金融终端"),
	//朝阳智投APP
	ZHITOU_APP(281, "朝阳智投APP"); //
	//产品线
	private int productLine;
	//产品线名称
	private String productName;
	
	private ProductLineEnum(int productLine, String productName) {
		this.productLine = productLine;
		this.productName = productName;
	}

	public String getProductName() {
		return productName;
	}

	public void setProductName(String productName) {
		this.productName = productName;
	}

	public int getProductLine() {
		return productLine;
	}

	public void setProductLine(int productLine) {
		this.productLine = productLine;
	}

	public int obtainProductLine() {
		return this.productLine;
	}
	/**
	 * 
	 * 方法描述 根据产品线获取对应枚举实例
	 *
	 * @param productLine 产品线名称
	 * @return
	 * 
	 * @author yaomy
	 * @date 2018年5月14日 下午7:35:31
	 */
	public static ProductLineEnum fromProductEnum(int productLine) {
		for(ProductLineEnum product:ProductLineEnum.values()) {
			if(product.obtainProductLine() == productLine) {
				return product;
			}
		}
		return null;
	}
	/**
	 * 
	 * 方法描述 根据
	 *
	 * @param productLine
	 * @return
	 * 
	 * @author yaomy
	 * @date 2018年5月14日 下午7:36:55
	 */
	public static String fromProductName(int productLine) {
		ProductLineEnum productLineEnum = fromProductEnum(productLine);
		return productLineEnum == null ? null : productLineEnum.productName;
	}
	/**
	 * 
	 * 方法描述 获取枚举值中产品线code--产品线名称
	 *
	 * @return
	 * 
	 * @author yaomy
	 * @date 2018年5月17日 上午8:55:41
	 */
	public static List<Map<String, Object>> fromProductLineKeyToValue(){
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		for(ProductLineEnum product:ProductLineEnum.values()) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("product_line", product.productLine);
			map.put("product_name", product.productName);
			list.add(map);
		}
		return list;
	}

	public static boolean contain(Integer code){
		if (code == null)
			return false;
		for (ProductLineEnum en : ProductLineEnum.values())
			if (en.getProductLine() == code)
				return true;
		return false;
	}
}
